#ifndef DW_GRAPHICS_OPENGL_SHADER_H
# define DW_GRAPHICS_OPENGL_SHADER_H

#include "graphics/shader.h"

namespace dw
{
	namespace graphics
	{
		namespace opengl
		{

			class Shader : public graphics::Shader
			{

				friend class Renderer;

			// Constructors
			public:

				Shader(const Type type);
				
				~Shader();

			// Methods
			public:

				virtual void load(std::istream& is);

				virtual void unload();

				virtual void compile();

				virtual void dispose();



				GLhandleARB getGLId() const { return _glId; }

				GLenum getGLType() const ;

			private:

				GLhandleARB _glId;

			};

		} // namespace opengl
	} // namepsace graphics
} // namespace dw

#endif // DW_GRAPHICS_OPENGL_SHADER_H
